package com.gitee.limaozhi.socket.lesson03.example3;

/**
 * IO处理器
 *
 * @author hzlimaozhi
 * @date 2019/08/07 15:14
 */
public interface Handler {

    /** 设置上下文 */
    Handler context(HandlerContext context);

    /** 获取上下文 */
    HandlerContext context();

    /** 设置下个处理器 */
    Handler next(Handler handler);

    /** 获取下个处理器 */
    Handler next();

    /** 启动处理器 */
    Handler start();

    /** 处理IO对象 */
    Handler handle(Object object);

    /**
     * 结束处理器
     * @param prevReq 上个处理器发来的请求数
     */
    Handler finish(int prevReq);

}
